package com.sikulifang.bank.simulation.dto;

import cn.hutool.core.clone.CloneRuntimeException;
import cn.hutool.core.clone.Cloneable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * ClassName TransferPaymentDTO
 * Description 转账付款
 *
 * @author Yat
 * Date 2023年6月13日, 0013 14:25
 * version 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TransferPaymentDTO implements Cloneable<TransferPaymentDTO> {


    /**
     * 流水号
     */
    private String serialNo;
    /**
     * 批量流水号
     */
    private String batchSerialNo;
    /**
     * 支付方式 1：跨行转账；2：行内；3：企业内部转账
     */
    private String payFlg;
    /**
     * 付款人账号
     */
    private String payAccountNo;
    /**
     * 收款人账号
     */
    private String recAccountNo;
    /**
     * recAccountName
     */
    private String recAccountName;
    /**
     * recOpenBankCode
     */
    private String recOpenBankCode;
    /**
     * recOpenBankName
     */
    private String recOpenBankName;
    /**
     * 交易的金额
     */
    private BigDecimal money;
    /**
     * 附言
     */
    private String postScript;
    /**
     * 摘要-备注
     */
    private String summary;
    /**
     * 借、付款：D，贷、收款：C
     */
    private String flag;
    /**
     * 用途
     */
    private String useCn;
    /**
     * 额外的字段
     */
    private String additional = "";
    private String bankCode;

    /**
     * 当前这笔交易是否失败
     */
    private boolean isError = false;

    public boolean getError() {
        return isError;
    }

    public void setError(boolean error) {
        isError = error;
    }

    @Override
    public TransferPaymentDTO clone() {
        try {
            return (TransferPaymentDTO) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new CloneRuntimeException(e);
        }
    }
}
